home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / ELECTRON / 0989.ZIP / ESPRESSO.ARC / PTIME.C < prev    next >
Text File  |  1987-03-13  |  1KB  |  55 lines

  1. /*
  2.     module: ptime.c
  3.     purpose: routines for dealing with processor time usage
  4. */
  5.  
  6. #include <stdio.h>
  7.  
  8. #ifdef IBM
  9. extern int second(), inter();
  10. #endif
  11.  
  12. /*
  13.     ptime -- return a floating point number which represents the
  14.     elasped processor time in seconds since some constant reference
  15. */
  16. double ptime()
  17. {
  18.     double time;
  19.  
  20. #ifdef IBM                              /* IBM 3081 VM/CMS */
  21.     inter(second, &time);
  22. #else
  23. #ifdef UNIX                             /* Berkeley Unix 4.1/4.2 bsd */
  24.     struct tms {int user, sys, cuser, csys;} buffer;
  25.     times(&buffer);
  26.     time = buffer.user / 60.0;
  27. #else
  28. #ifdef VMS                              /* VAX/VMS */
  29.     struct tms {int user, sys, cuser, csys;} buffer;
  30.     times(&buffer);
  31.     time = buffer.user / 100.0;
  32. #else
  33.     time = 0.0;                         /* anybody else */
  34. #endif
  35. #endif
  36. #endif
  37.     return time;
  38. }
  39.  
  40. /*
  41.     print_time -- massage a floating point number which represents a
  42.     time interval in seconds, into a string suitable for output
  43. */
  44. char *print_time(time)
  45. double time;
  46. {
  47.     static char s[40];
  48. #ifdef IBM
  49.     (void) sprintf(s, "%4.2f sec", time);
  50. #else
  51.     (void) sprintf(s, "%3.1f sec", time);
  52. #endif
  53.     return s;
  54. }
  55.